package www.bancodelanacion.intranet.prestamos.controlador;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import www.bancodelanacion.intranet.prestamos.entidad.ClienteDTO;
import www.bancodelanacion.intranet.prestamos.entidad.ContratoDTO;
import www.bancodelanacion.intranet.prestamos.service.ContratoService;
import www.bancodelanacion.intranet.prestamos.service.ContratoServiceImpl;

/**
 * Servlet implementation class ServletContrato
 */
public class ServletContrato extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	ContratoService servicio=new ContratoServiceImpl(); 
	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String metodo = request.getParameter("metodo");
		if (metodo.equals("buscaContratoporCodigo")) {
			buscaContratoporCodigo(request, response);
			lista(request, response);
		} else if (metodo.equals("inserta")) {
			inserta(request, response);
		} else if (metodo.equals("actualizar")) {
			actualizar(request, response);
		} else if (metodo.equals("buscaContratoporEstado")) {
			buscaContratoporEstado(request, response);
			lista(request, response);
		} else if (metodo.equals("lista")) {
			lista(request, response);
		}else if (metodo.equals("buscaContratoporCliente")) {
			buscaContratoporCliente(request, response);
		}
	}

	ContratoService service=new ContratoServiceImpl();
	
	
	protected void buscaContratoporCodigo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ContratoDTO dto=null;
		try {
			String id =request.getParameter("id");
			System.out.println("llego parametro "+id);
			dto = servicio.buscaContratoporCodigo(id);
			request.setAttribute("contrato", dto);
			System.out.println("encontro bean "+dto.getCodigocontrato());
			
			request.getRequestDispatcher("/actualizarContrato.jsp").forward(request,response);        
//			request.getRequestDispatcher("/MantenerCliente.jsp").forward(request,response);   
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	protected void buscaContratoporEstado(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

	protected void buscaContratoporCliente(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	}

	protected void lista(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ArrayList<ContratoDTO> lista = null;
		try {
			lista = servicio.listaContrato();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		//Para que se pueda paginar se guarda en una sesion la lista
		request.getSession().setAttribute("contratos", lista);
		request.getRequestDispatcher("/BuscarContrato.jsp").forward(request,response);
	}
	
	protected void inserta(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
						ContratoDTO c=new ContratoDTO();
						System.out.println("Entrando a insertar contrato");
						
					c.setCodigocontrato(request.getParameter("txtcodigocontrato"));
					c.setFecha(request.getParameter("txtfecha"));
					c.setFechainicio(request.getParameter("txtfechainicio"));
					c.setFechafin(request.getParameter("txtfechafin"));
					c.setTipocontrato(request.getParameter("txttipocontrato"));
					c.setModalidad(request.getParameter("txtmodalidad"));
					c.setMonto(request.getParameter("txtmonto"));
					c.setDescripcion(request.getParameter("txtdescripcion"));
					c.setCodigocliente(request.getParameter("txtcodigocliente"));
					c.setCodigoestado(request.getParameter("cboEstadoContrato"));
					c.setCodigotrabajador(request.getParameter("txtcodigotrabajador"));
					
					service.insertaContrato(c);
					System.out.println("Plaza contrato :D");
					
					} catch (Exception e) {
						e.printStackTrace();
					}
	}
	
	protected void actualizar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			ContratoDTO c = new  ContratoDTO();
			System.out.println("Entrando a actualizar contrato");
			
			c.setCodigocontrato(request.getParameter("txtcodigocontrato"));
			c.setFecha(request.getParameter("txtfecha"));
			c.setFechainicio(request.getParameter("txtfechainicio"));
			c.setFechafin(request.getParameter("txtfechafin"));
			c.setTipocontrato(request.getParameter("txttipocontrato"));
			c.setModalidad(request.getParameter("txtmodalidad"));
			c.setMonto(request.getParameter("txtmonto"));
			c.setDescripcion(request.getParameter("txtdescripcion"));
			c.setCodigocliente(request.getParameter("txtcodigocliente"));
			c.setCodigoestado(request.getParameter("cboEstadoContrato"));
			c.setCodigotrabajador(request.getParameter("txtcodigotrabajador"));
			
			service.actualizaContrato(c);
			System.out.println("Contrato modificado :D");
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
}
